#pragma once

#include "stdafx.h"
#include <windows.foundation.h>
#include <windows.media.h>

using namespace Microsoft::WRL;
using namespace ABI::Windows::Foundation;
using namespace ABI::Windows::Media;

class CFFSchemeHandler WrlSealed : 
	public RuntimeClass<RuntimeClassFlags<RuntimeClassType::WinRtClassicComMix>,
		ABI::Windows::Media::IMediaExtension,
		IMFSchemeHandler>
{
	InspectableClass(L"DemoSourceRT.CFFSchemeHandler",BaseTrust)
public:
	CFFSchemeHandler() = default;
	~CFFSchemeHandler() = default;
public:
	STDMETHODIMP BeginCreateObject(LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore* pProps,IUnknown** ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown* punkState);
	STDMETHODIMP EndCreateObject(IMFAsyncResult* pResult,MF_OBJECT_TYPE* pObjectType,IUnknown** ppObject);
	STDMETHODIMP CancelObjectCreation(IUnknown* pIUnknownCancelCookie) {return E_NOTIMPL;}
public:
	STDMETHODIMP SetProperties(ABI::Windows::Foundation::Collections::IPropertySet* pConfiguration) {return S_OK;}
};
ActivatableClass(CFFSchemeHandler)